const express = require('express');
const router = express.Router();
const clientController = require('../controllers/clientController');
const { authMiddleware, adminMiddleware } = require('../middleware/auth');

// 客户端上报信息（无需认证，客户端启动即可上报）
router.post('/report', clientController.reportClientInfo);

// 客户端主动下线通知（无需认证）
router.post('/offline', clientController.setClientOffline);

// 获取客户端列表（需要管理员权限）- 支持两种路径
router.get('/', adminMiddleware, clientController.getClientList);
router.get('/list', adminMiddleware, clientController.getClientList);

// 获取客户端详情（需要管理员权限）
router.get('/detail/:clientId', adminMiddleware, clientController.getClientDetail);

// 获取客户端统计（需要管理员权限）
router.get('/stats', adminMiddleware, clientController.getClientStats);

// 删除客户端（需要管理员权限）
router.delete('/:clientId', adminMiddleware, clientController.deleteClient);

// 获取在线客户端列表（需要管理员权限）
router.get('/online', adminMiddleware, clientController.getOnlineClients);

// 获取客户端目录列表（需要管理员权限）
router.get('/:clientId/directory', adminMiddleware, clientController.getClientDirectory);

// 下发传输任务到客户端（需要管理员权限）
router.post('/dispatch-task', adminMiddleware, clientController.dispatchTask);

module.exports = router;
